package kr.hkit.PowerJava.chapter23;

public class ThreadControl {
	static void print(String msg) {
		String threadName = Thread.currentThread().getName();
		System.out.format("%s : %s%n", threadName, msg);

	}

	private static class MessgeLoop implements Runnable {
		@Override
    	public void run() {
    	    String[] message = {"Pride will have a fall.",
    	    		"Power is dangerous unless you have humility",
    	    		"Offive changes manners.",
    	    		"Empty vessls make the most sound."
    	    };
    	    for (int i=0; i<message.length; i++){
    	    	print(message[i]);
    	    	try{
    	    		Thread.sleep(2000);
    	    	}catch(InterruptedException e){
    	    		print("아직 끝나지 않았음");
    	    	}
    	    }
    	       		
    	}
	}

	public static void main(String[] args) throws InterruptedException {
		int tries = 0; // 시도 횟수

		ThreadControl.print("추가적인 스레드를 시작합니다.");
		Thread t = new Thread(new MessgeLoop());
		t.start();

		ThreadControl.print("추가적인 스레드를 끝나기를 기다립니다.");

		while (t.isAlive()) {
			ThreadControl.print("아직 기다립니다.");
			t.join(1000);
			tries++;
			System.out.println(tries);
			if (tries > 2){
				ThreadControl.print("참을 수 없네요 ");
				t.interrupt();
				t.join();
			}
		}
   ThreadControl.print("메인 스레드 종료");
	}
}
